/*
* Copyright (C) 2012-2013, <Aeihu.z, aeihu.z@gmail.com>.
*
* Game Scenario Maker is a free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* Version 2(GPLv2) as published by the Free Software Foundation.
*/

//#include "CLogBox.h"
//
//CLogBox    CLogBox::logbox;
//
//CLogBox::CLogBox()
//{
//    OffsetOfBox.w = 
//    OffsetOfBox.h = 
//    OffsetOfInfo.w =
//    OffsetOfInfo.h = 
//    ShowMaxRows =
//    RowHeight = 0;
//}
//
//bool CLogBox::Subclass_Init()
//{
//    OffsetOfBox.x = CCommon::common.LOGBOX_LOCATION_X;
//    OffsetOfBox.y = CCommon::common.LOGBOX_LOCATION_Y;
//    OffsetOfInfo.x = CCommon::common.LOGBOX_INFO_OFFSET_X;
//    OffsetOfInfo.y = CCommon::common.LOGBOX_INFO_OFFSET_Y;
//    return true;
//}
//
//bool CLogBox::OnInit(const char* FileName,
//                int Width, 
//                int Height,
//                int TilesetOfTop,
//                int TilesetOfBottom,
//                int TilesetOfLeft,
//                int TilesetOfRight,
//                int TilesetOfTopLeft, 
//                int TilesetOfTopRight, 
//                int TilesetOfBottomLeft,
//                int TilesetOfBottomRight,
//                int TilesetOfFiller,
//                int SizeOfFiller,
//                int TypeOfAnimation,
//                int TilesetOfUpArrow,
//                int TilesetOfDownArrow,
//                int TilesetOfBar,
//                int Rowheight)
//{
//    if (!CBox::OnInit(FileName,
//                   Width, 
//                   Height,
//                   TilesetOfTop,
//                   TilesetOfBottom,
//                   TilesetOfLeft,
//                   TilesetOfRight,
//                   TilesetOfTopLeft, 
//                   TilesetOfTopRight, 
//                   TilesetOfBottomLeft,
//                   TilesetOfBottomRight,
//                   TilesetOfFiller,
//                   SizeOfFiller,
//                   TypeOfAnimation))
//        return false;
//
//    OffsetOfInfo.h = Height * CCommon::common.BOX_TILE_SIZE - (OffsetOfInfo.y << 1);
//
//    if(!CScrollbar::OnInit(OffsetOfInfo.h, 
//        TilesetOfUpArrow, 
//        TilesetOfDownArrow, 
//        TilesetOfBar, 
//        Surf_Tilesets))
//        return false;
//    
//    CScrollbar::SetCoordinate(
//        OffsetOfBox.x + (Width - 2) * CCommon::common.BOX_TILE_SIZE,
//        OffsetOfInfo.y);
//
//    RowHeight = CCommon::common.BOX_TILE_SIZE * Rowheight;
//    ShowMaxRows = OffsetOfInfo.h / RowHeight;
//}
//
//void CLogBox::AddLog(SDL_Surface* Surf_Msg)
//{
//    if (Surf_Msg == NULL)
//        return;
//
//    LogList.push_back(Surf_Msg);
//
//    if (LogList.size() > 30)
//    {
//        if (LogList[0] != NULL)
//        {
//            SDL_FreeSurface(LogList[0]);
//            LogList[0] = NULL;
//        }
//        LogList.erase(LogList.begin());
//    }
//    else
//        CScrollbar::SetMaxValue(LogList.size() - ShowMaxRows < 0 ? 0 : LogList.size() - ShowMaxRows);
//}
//
//void CLogBox::OnLoop()
//{
//    CBox::OnLoop();
//    CScrollbar::OnLoop();
//}
//
//void CLogBox::OnRender(SDL_Surface* Surf_Dest)
//{
//    int size = LogList.size();
//    for (int i = 0; i < (size < ShowMaxRows ? size : ShowMaxRows); i++)
//    {
//        if (i + Offset < LogList.size())
//            if (LogList[i + Offset] != NULL)
//                CSurface::OnDraw(Surf_Show, LogList[i + Offset], OffsetOfInfo.x, OffsetOfInfo.y + i * RowHeight);
//    }
//    
//    CScrollbar::OnRender(Surf_Show);
//    CBox::OnRender(Surf_Dest, OffsetOfBox);
//}
//
//void CLogBox::OnLButtonDown(int x, int y)
//{
//    if (IsEventEnable())
//        CScrollbar::OnLButtonDown(x - OffsetOfBox.x, y - OffsetOfBox.y);
//}
//
//void CLogBox::OnLButtonUp(int x, int y)
//{
//    if (IsEventEnable())
//        CScrollbar::OnLButtonUp(x - OffsetOfBox.x, y - OffsetOfBox.y);
//}
//
//void CLogBox::OnMouseMove(int x, int y)
//{
//    if (IsEventEnable())
//        CScrollbar::OnMouseMove(x - OffsetOfBox.x, y - OffsetOfBox.y);
//}
//
//void CLogBox::OnRButtonDown(int x, int y)
//{
//    if (IsEventEnable())
//        CBox::Hide(&CParser::parser.Pause);
//}
//
//void CLogBox::Subclass_Cleanup()
//{
//    for (int i = 0; i < LogList.size(); i++)
//    {
//        if (LogList[i] != NULL)
//        {
//            SDL_FreeSurface(LogList[i]);
//            LogList[i] = NULL;
//        }
//    }
//
//    LogList.clear();
//    CScrollbar::OnCleanup();
//}
//
//void CLogBox::OffsetIncr()
//{
//    CScrollbar::OffsetIncr();
//}
//
//void CLogBox::OffsetSubt()
//{
//    CScrollbar::OffsetSubt();
//}
